package jfrederick8;

public abstract class Weapon extends Item{
	protected boolean oneHanded;
	protected int minRange, maxRange, firePattern;
	
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped, boolean sellable, int uses, boolean oneHanded, int minRange, int maxRange, int firePattern){
		super(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, sellable, uses);
		this.oneHanded = oneHanded;
		this.minRange = minRange;
		this.maxRange = maxRange;
		this.firePattern = firePattern;
	}//end constructor Weapon
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped, boolean sellable, int uses, boolean oneHanded, int minRange, int maxRange){
		this(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, sellable, uses, oneHanded, minRange, maxRange, (Integer)null);
	}//end chain Weapon
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped, boolean sellable, int uses, boolean oneHanded, int minRange){
		this(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, sellable, uses, oneHanded, minRange, 1);
	}//end chain Weapon
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped, boolean sellable, int uses, boolean oneHanded){
		this(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, sellable, uses, oneHanded, 1);
	}//end chain Weapon
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped, boolean sellable, int uses){
		this(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, sellable, uses, true);
	}//end chain Weapon
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped, boolean sellable){
		this(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, sellable, 50 - (5*rarity));
	}//end chain Weapon
	public Weapon(int[] stats, String name, String description, String type, int value, int rarity, int effect, int effectDuration, int factionRestriction, int classRestriction, int proficiencyRestriction, int proficiencyMin, boolean equipped){
		this(stats, name, description, type, value, rarity, effect, effectDuration, factionRestriction, classRestriction, proficiencyRestriction, proficiencyMin, equipped, true);
	}//end chain Weapon
}//end class Weapon
